1. Technical Field
This disclosure generally relates to image processing apparatuses that perform compression coding of image data and/or coefficient data obtained by performing frequency transform on the image data and, more particularly to an image processing apparatus chat performs compression coding in conformity with JPEG 2000.
2. Description of the Related Art
Recently, JPEG 2000 is known as a compression coding method suitable for handling high-definition images. In the coding process of JPEG 2000, image data are converted into data of each color component, Y, Cb and Cr, and thereafter a two-dimensional discrete wavelet transform is performed on each data for frequency analysis.
Wavelet coefficient data (e.g., 16-bit data) obtained by the wavelet transform are divided into bit-planes in units of subbands (e.g., in the case of a wavelet transform at a level 3, 3LL, 3HL, 3LH, 3HH, 2HL, 2LH, 2HH, 1HL, 1LH and 1HH), and the data of each bit-plane are scanned sequentially from the top in three ways for each subband, thereby performing an arithmetic coding process. The three ways are called a “significant propagation pass”, a “magnitude refinement pass” and a “cleanup pass”.
In the case of 16-bit data, for example, 15×3+1=46 coding paths are formed by the above-mentioned arithmetic coding process. Hereinafter, for convenience of explanation, the coding paths are referred to as CP1 through CP46 in such a manner that a coding path corresponding to a higher bit-plane is indicated by a lower number. Final coded data are formed by adding, for example, required header information to MQ codes obtained by the above-mentioned arithmetic coding process.
JPEG 2000 implements the concept of multi-layer. As shown in FIG. 1, for example, in multi layers, a layer 1 (L1) includes: MQ codes obtained from the top two coding paths CP1 and CP2 of each subband (3LL, 3HL, 3LH and 3HH) of a level 3; and a MQ code obtained from the top coding path CP1 of a subband (1HH) of the level 1. These data are handled as packet data 1. A layer 2 (L2) includes: MQ codes obtained from top three coding paths CP1, CP2 and CP3 of each subband (2HL, 2LH and 2HH) at a level 2; and a MQ code obtained from the top coding path CP1 of each subband (1HL and 1LH) at the level 1. These data are handled as packet data 2. Similarly, the data of the remaining coding paths of each subband are divided into plural layers, and the data of each layer are handled as one packet data.
In JPEG 2000, it is possible to freely define how to divide each code block of each subband into layers (on what basis grouping is to be performed).
It is possible to perform a so-called progressive reproduction process in which an image is gradually reproduced by using the above-mentioned multiple layers and sequentially decoding the data of the coding paths included in the layer 1, the layer 2 and the layer 3 . . . in this order. There are image processing apparatuses that perform the progressive reproduction process by using multiple layers of JPEG 2000.
As for progressive display of multiple layers using JPEG 2000, a detailed description is given in “ISO/IEC 15444, JPEG 2000”.
As mentioned above, with the use of multiple layers of JPEG 2000, it is possible to realize progressive reproduction. However, the amount of MQ codes (MQ code amount) of each coding path obtained by an arithmetic coding process is not constant. Hence, even if the number of coding paths to be taken in each layer is made constant, the amount of codes of each layer becomes unstable, which is inconvenient in transferring data and/or storing data in memory.